iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
AI Engineering

AI 開發雜記:Skill、CLAUDE.md、Memory 這些你可能忽略的細節系列 第 20

Day 20:為什麼要限制 agent「只讀不寫」——查核跟修正分開的理由

  • 分享至 

  • xImage
  •  

前言:反正 agent 看得懂問題,順手改掉不是更有效率嗎?

「派一個 agent 去查文章裡有沒有技術錯誤,它看到問題,順手改掉不就好了,何必還要多一趟『回報給我,我再決定要不要改』?」

這是我第一次設計事實查核流程時,內心也閃過的念頭。看起來確實省一道手續——agent 找到問題的當下,就是它最清楚上下文的時候,讓它直接動手改,感覺理所當然。但實際跑過幾次委派流程之後,我改成了一條明確的規則:任何負責「查核」的 agent,一律只能讀、不能寫。 這篇要講清楚為什麼。

今日目標

  • 理解「找出問題」跟「決定怎麼改」其實是兩個獨立的判斷步驟
  • 看清楚讓同一個 agent 一邊查一邊改,協調者會失去什麼
  • 認識「只讀不寫」這條限制具體要怎麼寫進委派指令
  • 建立查核類任務的委派習慣:先看完整清單,再決定怎麼處理

「找出問題」跟「決定怎麼改」是兩種不同的判斷

表面上看,「發現一個錯誤」跟「修正這個錯誤」像是同一個動作的前後兩步,但仔細拆開會發現,這兩件事需要的判斷標準不一樣。

找出問題只需要回答一個問題:這裡的陳述跟權威來源/客觀事實對不對得上。這件事有明確的對錯,agent 可以獨立完成。

決定怎麼改卻牽涉到更多——這個錯誤是客觀無爭議的(版本號記錯、函式簽章寫反),還是判斷空間比較大的(某個類比恰不恰當、要不要多加一句但書)?如果是後者,該怎麼改、要不要改,往往需要人來拿主意,不是 agent 自己能決定的。

如果讓同一個 agent 一次做完這兩件事,等於是把「這件事該不該由 AI 自己拍板」這個問題,悄悄外包給了 AI 自己——它會用它自己的判斷標準,決定哪些算「客觀錯誤可以直接改」,而協調者完全看不到這個判斷過程,只會看到一個已經改完的結果。

案例:一次查核任務裡發生的事

假設委派一個 agent 去查一批文章裡的技術主張。指令只寫了「查完之後把結果回報給我」,沒有明講能不能動手改。這個 agent 查完之後,發現了三種情況:一個明顯的版本號錯誤、一個措辭稍微誇大的敘述、一個看起來像錯誤但其實只是換了個角度描述同一件事。

它把三個都當成「錯誤」直接改掉,回報時只說「查核完成,修正了三處」。

協調者這時候完全沒辦法分辨:這三處裡有沒有其中一個其實不該改、只是這個 agent 判斷錯了?想確認,只能重新讀一次改動前後的完整內容,等於把原本該省下來的查核工作,又做了一次。「查完直接改」看起來省了一道手續,實際上是把「協調者要親自複查」這個成本轉嫁到了後面,而且複查的難度比查核本身更高——因為原始狀態已經被覆蓋掉了。

用一組對照來看這個差異:

❌ 查完直接動手改:
agent 回報:「查核完成,修正了 3 處錯誤。」
→ 協調者看不到「這 3 處原本各自是什麼樣的問題」,
  也看不到 agent 判斷「這算客觀錯誤還是判斷空間大」的依據,
  想確認只能重新讀一次改動前後的內容

✅ 只讀不寫,回報完整清單:
agent 回報:
「1. [檔案:行號] 版本號寫錯,來源:官方文件連結 → 建議直接修正
 2. [檔案:行號] 這個類比可能不夠精確,附查證來源 → 需要你判斷要不要改
 3. [檔案:行號] 查證後其實沒有問題,只是描述角度不同 → 不需要修改」
→ 協調者可以直接看著這份清單,
  對第 1 項直接動手、對第 2 項判斷或詢問使用者、
  對第 3 項確認不用處理,三種情況分得清清楚楚

「只讀不寫」這條限制真正保護的不是檔案本身,是協調者的判斷權——它確保「這裡有沒有問題」跟「這個問題該怎麼處理」這兩個決定,不會被同一次動作悄悄綁在一起做完。

這條限制要怎麼寫進委派指令

光是心裡想著「這個 agent 不要亂改」還不夠,這條規則要明確寫進委派指令裡,而且最好用強調過的措辭,因為 agent 在完成任務的過程中,很容易把「我發現問題」自然延伸成「我順手解決」。具體的寫法通常包含三個要素:

  1. 明講任務範圍只到「找出問題並回報」為止,不包含「修正」這個動作。
  2. 明講不要修改任何檔案,即使發現的問題看起來很明確、很容易改。
  3. 明講回報格式要包含足夠的資訊(位置、原文、查證依據、建議),讓協調者不用回頭重新調查就能做決定。

這三個要素缺一不可——只講「不要改檔案」沒有講清楚為什麼,agent 遇到「這個錯誤看起來很明顯」的情況時,還是容易忍不住動手;只要求「回報結果」但沒規定格式,回報可能會太簡略,協調者一樣要重新查證一次才能判斷。

今日思考題

回想你上一次委派別人(不管是 AI 還是團隊裡的人)去「檢查」某件事的時候:你的指令有沒有明確講清楚「檢查完之後是要回報給我,還是可以直接動手處理」?如果沒有講清楚,對方多半會照著自己覺得「比較有效率」的方式去做,而那個判斷標準未必跟你想要的一樣。

今日重點回顧

  • 「找出問題」是有客觀對錯的判斷,「決定怎麼改」牽涉到要不要交給 AI 自己拍板,這是兩種不同性質的判斷
  • 讓同一個 agent 一次做完查跟改,等於把「這件事該不該讓 AI 自己決定」這個問題,悄悄外包給了 AI 自己
  • 查完直接改看起來省一道手續,實際上把協調者的複查成本推遲到後面,而且複查難度更高(原始狀態已經被覆蓋)
  • 委派查核任務時,「只讀不寫」要明確寫進指令,並要求回報格式包含足夠資訊,讓協調者不用重新調查就能做決定

明日預告

明天要看一個更棘手的情況:一個 agent 明明被要求只讀不寫,卻還是違反指示動手改了——而改的內容,剛好是對的。這種時候該怎麼處理,比單純的「agent 犯錯」複雜得多。


上一篇
Day 19:案例——兩個 agent 同時寫同一個檔案,事後怎麼比對取捨
下一篇
Day 21:案例——一個 agent 違反只讀不寫指示,但改的內容剛好是對的
系列文
AI 開發雜記:Skill、CLAUDE.md、Memory 這些你可能忽略的細節21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言